package com.guoranhao.business.model;

import com.guoranhao.tool.model.BaseModel;
import com.guoranhao.tool.model.FieldComment;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
@Accessors(chain = true)
public class AppFunctionIcon extends BaseModel {
    /**
     * 主键id
     */
    @FieldComment(value="主键id")
    @NotNull(message="主键id")
    private Long appFunctionIconId;

    /**
     * app功能图标分类id
     */
    @FieldComment(value="app功能图标分类id")
    @NotNull(message="app功能图标分类id")
    private Long appFunctionIconCategoryId;

    /**
     * app功能图标名称
     */
    @FieldComment(value="app功能图标名称")
    private String functionIconName;

    /**
     * app功能图标介绍
     */
    @FieldComment(value="app功能图标介绍")
    private String functionIconDesc;

    /**
     * app功能图标url
     */
    @FieldComment(value="app功能图标url")
    private String functionIconUrl;

    /**
     * app功能图标状态0:无效;1:有效
     */
    @FieldComment(value="app功能图标状态0")
    private Integer status;

    /**
     * app功能图标排序权重,权重越大排序靠前
     */
    @FieldComment(value="app功能图标排序权重")
    @NotNull(message="app功能图标排序权重")
    private Integer ord;

    /**
     * app功能图标触发类型参考FunctionIconTriggerTypeEnum枚举
     */
    @FieldComment(value="app功能图标触发类型参考FunctionIconTriggerTypeEnum枚举")
    @NotNull(message="app功能图标触发类型参考FunctionIconTriggerTypeEnum枚举")
    private Integer triggerType;

    /**
     * app功能图标触发条件值
     */
    @FieldComment(value="app功能图标触发条件值")
    private String triggerValue;

    /**
     * 是否需要登录0:否;1:是
     */
    @FieldComment(value="是否需要登录0")
    private Integer needLogin;

    /**
     * 父级id（对应主键app_function_icon_id）
     */
    @FieldComment(value="父级id")
    private Long parentId;

    /**
     * app功能图标类型 0 正常 1 提测使用
     */
    @FieldComment(value="app功能图标类型")
    private Integer type;

    /**
     * 平台类型 iOS or Android 目前只type=1时使用
     */
    @FieldComment(value="平台类型")
    private String platformNo;

    /**
     * 创建时间
     */
    @FieldComment(value="创建时间")
    @NotNull(message="创建时间")
    private Date createTime;

    /**
     * 最后修改时间
     */
    @FieldComment(value="最后修改时间")
    @NotNull(message="最后修改时间")
    private Date updateTime;

    public void initWithDefaultValue() {
        this.appFunctionIconCategoryId = 0L;
        this.functionIconName = "";
        this.functionIconDesc = "";
        this.functionIconUrl = "";
        this.status = 0;
        this.ord = 0;
        this.triggerType = 0;
        this.triggerValue = "";
        this.needLogin = 0;
        this.parentId = 0L;
        this.type = 0;
        this.platformNo = "";
        this.createTime = new Date();
        this.updateTime = new Date();
    }
}